﻿/*
 Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
        (function() {
            CKEDITOR.dialog.add("templates", function(c) {
                function o(a, b) {
                    var k = CKEDITOR.dom.element.createFromHtml('<a href="javascript:void(0)" tabIndex="-1" role="option" ><div class="cke_tpl_item"></div></a>'), d = '<table style="width:350px;" class="cke_tpl_preview" role="presentation"><tr>';
                    a.image && b && (d += '<td class="cke_tpl_preview_img"><img src="' + CKEDITOR.getUrl(b + a.image) + '"' + (CKEDITOR.env.ie6Compat ? ' onload="this.width=this.width"' : "") + ' alt="" title=""></td>');
                    d += '<td style="white-space:normal;"><span class="cke_tpl_title">' +
                            a.title + "</span><br/>";
                    a.description && (d += "<span>" + a.description + "</span>");
                    k.getFirst().setHtml(d + "</td></tr></table>");
                    k.on("click", function() {
                        p(a.html)
                    });
                    return k
                }
                function p(a) {
                    var b = CKEDITOR.dialog.getCurrent();
                    b.getValueOf("selectTpl", "chkInsertOpt") ? (c.fire("saveSnapshot"), c.setData(a, function() {
                        b.hide();
                        var a = c.createRange();
                        a.moveToElementEditStart(c.editable());
                        a.select();
                        setTimeout(function() {
                            c.fire("saveSnapshot")
                        }, 0)
                    })) : (c.insertHtml(a), b.hide())
                }
                function i(a) {
                    var b = a.data.getTarget(),
                            c = g.equals(b);
                    if (c || g.contains(b)) {
                        var d = a.data.getKeystroke(), f = g.getElementsByTag("a"), e;
                        if (f) {
                            if (c)
                                e = f.getItem(0);
                            else
                                switch (d) {
                                    case 40:
                                        e = b.getNext();
                                        break;
                                    case 38:
                                        e = b.getPrevious();
                                        break;
                                    case 13:
                                    case 32:
                                        b.fire("click")
                                }
                            e && (e.focus(), a.data.preventDefault())
                        }
                    }
                }
                var h = CKEDITOR.plugins.get("templates");
                CKEDITOR.document.appendStyleSheet(CKEDITOR.getUrl(h.path + "dialogs/templates.css"));
                var g, h = "cke_tpl_list_label_" + CKEDITOR.tools.getNextNumber(), f = c.lang.templates, l = c.config;
                return{title: c.lang.templates.title,
                    minWidth: CKEDITOR.env.ie ? 440 : 400, minHeight: 340, contents: [{id: "selectTpl", label: f.title, elements: [{type: "vbox", padding: 5, children: [{id: "selectTplText", type: "html", html: "<span>" + f.selectPromptMsg + "</span>"}, {id: "templatesList", type: "html", focus: !0, html: '<div class="cke_tpl_list" tabIndex="-1" role="listbox" aria-labelledby="' + h + '"><div class="cke_tpl_loading"><span></span></div></div><span class="cke_voice_label" id="' + h + '">' + f.options + "</span>"}, {id: "chkInsertOpt", type: "checkbox", label: f.insertOption,
                                            "default": l.templates_replaceContent}]}]}], buttons: [CKEDITOR.dialog.cancelButton], onShow: function() {
                        var a = this.getContentElement("selectTpl", "templatesList");
                        g = a.getElement();
                        CKEDITOR.loadTemplates(l.templates_files, function() {
                            var b = (l.templates || "default").split(",");
                            if (b.length) {
                                var c = g;
                                c.setHtml("");
                                for (var d = 0, h = b.length; d < h; d++)
                                    for (var e = CKEDITOR.getTemplates(b[d]), i = e.imagesPath, e = e.templates, n = e.length, j = 0; j < n; j++) {
                                        var m = o(e[j], i);
                                        m.setAttribute("aria-posinset", j + 1);
                                        m.setAttribute("aria-setsize",
                                                n);
                                        c.append(m)
                                    }
                                a.focus()
                            } else
                                g.setHtml('<div class="cke_tpl_empty"><span>' + f.emptyListMsg + "</span></div>")
                        });
                        this._.element.on("keydown", i)
                    }, onHide: function() {
                        this._.element.removeListener("keydown", i)
                    }}
            })
        })();